package com.hd.trans.db.greenDao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.hd.trans.db.bean.AiChatRecord;
import com.hd.trans.db.bean.FileTranslateRecord;
import com.hd.trans.db.bean.HuDunLanguage;
import com.hd.trans.db.bean.LanguageRecord;
import com.hd.trans.db.bean.Limit4UseBean;
import com.hd.trans.db.bean.OCRImageHistory;
import com.hd.trans.db.bean.TranslateRecord;

import com.hd.trans.db.greenDao.AiChatRecordDao;
import com.hd.trans.db.greenDao.FileTranslateRecordDao;
import com.hd.trans.db.greenDao.HuDunLanguageDao;
import com.hd.trans.db.greenDao.LanguageRecordDao;
import com.hd.trans.db.greenDao.Limit4UseBeanDao;
import com.hd.trans.db.greenDao.OCRImageHistoryDao;
import com.hd.trans.db.greenDao.TranslateRecordDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig aiChatRecordDaoConfig;
    private final DaoConfig fileTranslateRecordDaoConfig;
    private final DaoConfig huDunLanguageDaoConfig;
    private final DaoConfig languageRecordDaoConfig;
    private final DaoConfig limit4UseBeanDaoConfig;
    private final DaoConfig oCRImageHistoryDaoConfig;
    private final DaoConfig translateRecordDaoConfig;

    private final AiChatRecordDao aiChatRecordDao;
    private final FileTranslateRecordDao fileTranslateRecordDao;
    private final HuDunLanguageDao huDunLanguageDao;
    private final LanguageRecordDao languageRecordDao;
    private final Limit4UseBeanDao limit4UseBeanDao;
    private final OCRImageHistoryDao oCRImageHistoryDao;
    private final TranslateRecordDao translateRecordDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        aiChatRecordDaoConfig = daoConfigMap.get(AiChatRecordDao.class).clone();
        aiChatRecordDaoConfig.initIdentityScope(type);

        fileTranslateRecordDaoConfig = daoConfigMap.get(FileTranslateRecordDao.class).clone();
        fileTranslateRecordDaoConfig.initIdentityScope(type);

        huDunLanguageDaoConfig = daoConfigMap.get(HuDunLanguageDao.class).clone();
        huDunLanguageDaoConfig.initIdentityScope(type);

        languageRecordDaoConfig = daoConfigMap.get(LanguageRecordDao.class).clone();
        languageRecordDaoConfig.initIdentityScope(type);

        limit4UseBeanDaoConfig = daoConfigMap.get(Limit4UseBeanDao.class).clone();
        limit4UseBeanDaoConfig.initIdentityScope(type);

        oCRImageHistoryDaoConfig = daoConfigMap.get(OCRImageHistoryDao.class).clone();
        oCRImageHistoryDaoConfig.initIdentityScope(type);

        translateRecordDaoConfig = daoConfigMap.get(TranslateRecordDao.class).clone();
        translateRecordDaoConfig.initIdentityScope(type);

        aiChatRecordDao = new AiChatRecordDao(aiChatRecordDaoConfig, this);
        fileTranslateRecordDao = new FileTranslateRecordDao(fileTranslateRecordDaoConfig, this);
        huDunLanguageDao = new HuDunLanguageDao(huDunLanguageDaoConfig, this);
        languageRecordDao = new LanguageRecordDao(languageRecordDaoConfig, this);
        limit4UseBeanDao = new Limit4UseBeanDao(limit4UseBeanDaoConfig, this);
        oCRImageHistoryDao = new OCRImageHistoryDao(oCRImageHistoryDaoConfig, this);
        translateRecordDao = new TranslateRecordDao(translateRecordDaoConfig, this);

        registerDao(AiChatRecord.class, aiChatRecordDao);
        registerDao(FileTranslateRecord.class, fileTranslateRecordDao);
        registerDao(HuDunLanguage.class, huDunLanguageDao);
        registerDao(LanguageRecord.class, languageRecordDao);
        registerDao(Limit4UseBean.class, limit4UseBeanDao);
        registerDao(OCRImageHistory.class, oCRImageHistoryDao);
        registerDao(TranslateRecord.class, translateRecordDao);
    }
    
    public void clear() {
        aiChatRecordDaoConfig.clearIdentityScope();
        fileTranslateRecordDaoConfig.clearIdentityScope();
        huDunLanguageDaoConfig.clearIdentityScope();
        languageRecordDaoConfig.clearIdentityScope();
        limit4UseBeanDaoConfig.clearIdentityScope();
        oCRImageHistoryDaoConfig.clearIdentityScope();
        translateRecordDaoConfig.clearIdentityScope();
    }

    public AiChatRecordDao getAiChatRecordDao() {
        return aiChatRecordDao;
    }

    public FileTranslateRecordDao getFileTranslateRecordDao() {
        return fileTranslateRecordDao;
    }

    public HuDunLanguageDao getHuDunLanguageDao() {
        return huDunLanguageDao;
    }

    public LanguageRecordDao getLanguageRecordDao() {
        return languageRecordDao;
    }

    public Limit4UseBeanDao getLimit4UseBeanDao() {
        return limit4UseBeanDao;
    }

    public OCRImageHistoryDao getOCRImageHistoryDao() {
        return oCRImageHistoryDao;
    }

    public TranslateRecordDao getTranslateRecordDao() {
        return translateRecordDao;
    }

}
